The present invention generally relates to the field of networked computerized systems used to provide supervisory process control instructions to a process plant. More particularly, the present invention relates a system providing recipe management functionality in a process control environment.
Manufacturing industries build products according to repeatable procedures that use standardized quantities of raw materials. In essence, products are manufactured according to recipes. A recipe may describe the quantity of raw materials used and the way the materials are combined to create the final product. In one simple example, a process control entity such as an industrial bakery may follow a basic recipe that lists all the ingredients and procedural steps needed to make cookies. In such an example, the recipe may define the amounts of particular ingredients, the quantity of time spent mixing the ingredients, and the time and temperature for baking. It should be understood that recipes may also be used to define other processes such as, for example, a sequence of on-off type operations of a single piece of equipment. For example, in the cookie making process discussed above, a recipe may be used to define the operations performed by the mixer alone. In such an example, the recipe may include a first mixing step where the mixer mixes a first group of ingredients for a first length of time and a second mixing step where the mixer mixes the first ingredients with a second group of ingredients for a second amount of time. Still other recipe types may also be used without departing from the scope of the present invention.
Products such as Wonderware's Recipe Manager assist in creating and organizing recipes used to run various processes. As shown and discussed therein, prior recipe management systems relied on spreadsheet-based user interfaces in which users could define and create recipe templates. Although helpful for creating a set of instructions (recipe) for running a supervisory control routine, the grid-based recipe configuration systems are not very user-friendly. Accordingly, a more user-friendly system for recipe configuration is desired.
Recipe management systems have long used recipe templates to simplify the recipe creation process. With a recipe template, a user could, for example, define a common set of parameter types and default parameter values that may be used by any one of a number of pieces of equipment or lines of equipment located throughout the process facility. In the cookie-making process example, a standardized cookie-making template could be created for subsequent instantiation with instance-specific parameters and operations for, for example, peanut butter, chocolate chip, and oatmeal raisin cookies. However, using templates to instantiate similar recipes has the potential for problems. For example, changes in templates may make instances thereof obsolete. As a result changes to a template require a user to make corresponding changes in all instances that depend therefrom. Other recipe items that have dependencies may similarly become obsolete when changes are made to the items on which they depend. Accordingly, a versioning system that accounts for dependencies is desired.
Prior recipe management systems have used application-specific execution engines to execute control recipes in a process plant. These application-specific execution engines are either incompatible with system platforms or are unable to be hosted as a standalone executable. Execution engines pass recipes through multiple communication layers, which can cause a loss in data integrity. Additionally, during runtime these execution engines host the entire equipment model that is stored in the configuration database. As a result, configuration tools may not access the equipment model during runtime without adversely affecting the runtime system.